package com.um.jdy.common.member.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 邮件设置
 * https://www.hutool.cn/docs/#/extra/%E9%82%AE%E4%BB%B6%E5%B7%A5%E5%85%B7-MailUtil
 * @author renjunwei
 */
@Data
@Component
@ConfigurationProperties(prefix = "hsh.mail-setting")
public class MailSettingProperties {

  /**
   * SMTP服务器域名
   */
  private String host;
  /**
   * SMTP服务端口
   */
  private Integer port;
  /**
   * 用户名
   */
  private String user;
  /**
   * 密码
   */
  private String pass;
  /**
   * 发送方，遵循RFC-822标准
   */
  private String from;
  /**
   * 使用 STARTTLS安全连接，STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接（TLS或SSL）， 而不是使用一个单独的加密通信端口。
   */
  private boolean starttlsEnable = false;
  /**
   * 使用 SSL安全连接
   */
  private Boolean sslEnable;
  /**
   * 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
   */
  private String socketFactoryClass = "javax.net.ssl.SSLSocketFactory";
  /**
   * 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
   */
  private boolean socketFactoryFallback;
  /**
   * 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口
   */
  private int socketFactoryPort = 465;
  /**
   * SMTP超时时长，单位毫秒，缺省值不超时
   */
  private long timeout;
  /**
   * Socket连接超时值，单位毫秒，缺省值不超时
   */
  private long connectionTimeout;
}
